import functools

from django.http import HttpResponse


def check_ip(views_func):
    #用这个装饰器也要记得把views_func传入,否则会报错'WSGIRequest' object has no attribute 'get'
    @functools.wraps(views_func)
    def wrapper(request,*args,**kwargs):
        #在视图函数执行钱做额外的操作，选择装饰器，然后将视图函数返回
        #禁止黑名单访问思路
        #将访问的用户电脑IP从请求头中获取，因为装饰器内层函数的参数要和视图函数参数一致，所以将request传入
        #判断用户IP是否在黑名单列表中，如果在就返回IP禁止访问响应体

        # 将访问的用户电脑IP从请求头中获取，
        ip = request.META.get('REMOTE_ADDR')
        # 判断用户IP是否在黑名单列表中，如果在就返回IP禁止访问响应体
        if ip in ['192.168.26.54']:
            return HttpResponse('禁止访问')
        return views_func(request,*args,**kwargs)
    return wrapper